home *** CD-ROM | disk | FTP | other *** search
/ MASPC 1 / MASPC_1.iso / Demos / Demo DIV / DATA / SYSTEM / LTOBJ.DEF < prev    next >
Encoding:
Text File  |  1998-01-30  |  15.6 KB  |  379 lines

  1.  
  2. //─────────────────────────────────────────────────────────────────────────────
  3. //      Pre-Carga de la tabla de objetos
  4. //─────────────────────────────────────────────────────────────────────────────
  5.  
  6. //─── Constantes ──────────────────────────────────────────────────────────────
  7.  
  8. const m320x200=320200   // Identificadores de los diferentes modos de vídeo
  9. const m320x240=320240
  10. const m320x400=320400
  11. const m360x240=360240
  12. const m360x360=360360
  13. const m376x282=376282
  14. const m640x400=640400
  15. const m640x480=640480
  16. const m800x600=800600
  17. const m1024x768=1024768
  18.  
  19. const true=1            // Constante que vale TRUE (todas las impares)
  20. const false=0           // Constante que vale FALSE (todas las pares)
  21.  
  22. const pi=180000         // PI en coma fija (grados * 1000, radianes * 57295.77951)
  23.  
  24. const s_kill=0          // Señal de matar un proceso
  25. const s_wakeup=1        // Señal de despertar un proceso
  26. const s_sleep=2         // Señal de dormir un proceso (ejecución/visualización)
  27. const s_freeze=3        // Señal de congelar un proceso (solo ejecución)
  28.  
  29. const s_kill_tree=100   // Señales enviadas a un proceso
  30. const s_wakeup_tree=101 // que afectan igualmente a toda
  31. const s_sleep_tree=102  // su descendencia.
  32. const s_freeze_tree=103 //
  33.  
  34. const all_text=0        // Identificador de texto genérico
  35. const all_sound=-1      // Identificador de texto genérico
  36.  
  37. const g_wide=0          // Ancho
  38. const g_height=1        // Alto
  39. const g_x_center=2      // X centro
  40. const g_y_center=3      // Y centro
  41.  
  42. const c_screen=0        // Tipo de coordenada de pantalla
  43. const c_scroll=1        // Tipo de coordenada de scroll
  44. const c_m7=2            // Tipo de coordenada de m7
  45.  
  46. const partial_dump=0    // Volcado parcial (dump_type)
  47. const complete_dump=1    // Volcado completo (dump_type)
  48.  
  49. const no_restore=-1      // No restaurar el fondo (restore_type)
  50. const partial_restore=0  // Restauración de fondo parcial
  51. const complete_restore=1 // Restauración de fondo completa
  52.  
  53. const c_0=1             // Indicadores de un plano de scroll/m7 (para cnumber)
  54. const c_1=2
  55. const c_2=4
  56. const c_3=8
  57. const c_4=16
  58. const c_5=32
  59. const c_6=64
  60. const c_7=128
  61. const c_8=256
  62. const c_9=512
  63.  
  64. //─── Scan codes ──────────────────────────────────────────────────────────────
  65.  
  66. // Nota: Estos códigos se deben corresponder con el fichero HELP.PRG
  67.  
  68. const _esc=1
  69. const _f1=59
  70. const _f2=60
  71. const _f3=61
  72. const _f4=62
  73. const _f5=63
  74. const _f6=64
  75. const _f7=65
  76. const _f8=66
  77. const _f9=67
  78. const _f10=68
  79. const _f11=87
  80. const _f12=88
  81. const _prn_scr=55
  82. const _scroll_lock=70
  83.  
  84. const _wave=41
  85. const _1=2
  86. const _2=3
  87. const _3=4
  88. const _4=5
  89. const _5=6
  90. const _6=7
  91. const _7=8
  92. const _8=9
  93. const _9=10
  94. const _0=11
  95. const _minus=12
  96. const _plus=13
  97.  
  98. const _backspace=14
  99. const _tab=15
  100. const _q=16
  101. const _w=17
  102. const _e=18
  103. const _r=19
  104. const _t=20
  105. const _y=21
  106. const _u=22
  107. const _i=23
  108. const _o=24
  109. const _p=25
  110. const _l_brachet=26
  111. const _r_brachet=27
  112. const _enter=28
  113.  
  114. const _caps_lock=58
  115. const _a=30
  116. const _s=31
  117. const _d=32
  118. const _f=33
  119. const _g=34
  120. const _h=35
  121. const _j=36
  122. const _k=37
  123. const _l=38
  124. const _semicolon=39
  125. const _apostrophe=40
  126. const _backslash=43
  127.  
  128. const _l_shift=42
  129. const _z=44
  130. const _x=45
  131. const _c=46
  132. const _v=47
  133. const _b=48
  134. const _n=49
  135. const _m=50
  136. const _comma=51
  137. const _point=51
  138. const _slash=51
  139. const _r_shift=54
  140.  
  141. const _control=29
  142. const _alt=56
  143. const _space=57
  144.  
  145. const _ins=82
  146. const _home=71
  147. const _pgup=73
  148. const _del=83
  149. const _end=79
  150. const _pgdn=81
  151.  
  152. const _up=72
  153. const _down=80
  154. const _left=75
  155. const _right=77
  156.  
  157. const _num_lock=69
  158. const _c_backslash=53
  159. const _c_asterisk=55
  160. const _c_minus=74
  161. const _c_home=71
  162. const _c_up=72
  163. const _c_pgup=73
  164. const _c_left=75
  165. const _c_center=76
  166. const _c_right=77
  167. const _c_end=79
  168. const _c_down=80
  169. const _c_pgdn=81
  170. const _c_ins=82
  171. const _c_del=83
  172. const _c_plus=78
  173. const _c_enter=28
  174.  
  175. //─── Variables globales ──────────────────────────────────────────────────────
  176.  
  177. global struct mouse[0]
  178.         x               // Coordenada X del ratón
  179.         y               // Coordenada Y del ratón
  180.         z               // Prioridad de impresión del gráfico
  181.         file            // Fichero que contiene el gráfico
  182.         graph           // Gráfico asignado al ratón
  183.         angle           // Angulo del puntero
  184.         size            // Tamaño en porcentaje
  185.         flags           // Flags del ratón
  186.         region          // Region de corte
  187.         left            // Botón izquierdo del ratón
  188.         middle          // Botón central del ratón
  189.         right           // Botón derecho del ratón
  190. end
  191.  
  192. global struct scroll[9]
  193.         z               // Prioridad de impresión
  194.         camera          // Id del proceso al que sigue el scroll (p.def 0-n/a)
  195.         ratio           // Background speed ratio (p.def 200, la mitad del primero)
  196.         speed           // Velocidad máxima del scroll (primer plano) (p.def 0-Sin límite)
  197.         region1         // Region de bloqueo del scroll (p.def -1)
  198.         region2         // Region exterior del scroll (sin velocidad máxima, p.def -1)
  199.         x0              // Coordenadas del primer plano de scroll
  200.         y0              // (esquina superior izquierda de la ventana)
  201.         x1              // Coordenadas del segundo plano
  202.         y1              // (plano del fondo, si hay)
  203. end
  204.  
  205. global struct m7[9]
  206.         z               // Prioridad de impresión
  207.         camera          // Id del proceso al que sigue la cámara
  208.         height          // Altura de la cámara
  209.         distance        // Distancia de la cámara al proceso seguido
  210.         horizon         // Altura del horizonte
  211.         focus           // Focal para la cámara (0..512)
  212.         color           // Color para el exterior del modo-7
  213. end
  214.  
  215. global struct joy[0]
  216.         button1
  217.         button2
  218.         button3
  219.         button4
  220.         left
  221.         right
  222.         up
  223.         down
  224. end
  225.  
  226. global struct setup[0]
  227.         card
  228.         port
  229.         irq
  230.         dma
  231.         dma2
  232.         master
  233.         sound_fx
  234.         cd_audio
  235. end
  236.  
  237. global timer[9]         // 10 Contadores de milésimas para el usuario
  238.  
  239. global text_z=-256      // Prioridad de impresión de los textos
  240.  
  241. global fading=0         // Indica si se está realizando un fade
  242.  
  243. global shift_status=0   // Actual shift status
  244. global ascii=0          // Ascii code of last key pressed
  245. global scan_code=0      // Scan code of last key pressed
  246.  
  247. global joy_filter=10    // Filtro aplicado al joystick (0..100%)
  248. global joy_status=1     // Estado del joystick (0-off, 1-on, 2-forced)
  249.  
  250. global restore_type=1   // -1 No restaura, 0 Parcialmente, 1 Por completo
  251. global dump_type=1      // 0 Volcado parcial, 1 Volcado completo
  252.  
  253. global max_process_time=500 // Maximo tiempo de ejecución para un proceso
  254.  
  255. global fps=0            // Número de frames por segundo
  256.  
  257. //─── Variables locales ───────────────────────────────────────────────────────
  258.  
  259. local struct reserved[0]
  260.         process_id     // Identificador del proceso
  261.         id_scan        // Para scanear procesos (colisiones)
  262.         process_type   // Tipo de proceso
  263.         type_scan      // Para scanear procesos por tipo
  264.         status         // Estado actual de este proceso
  265.         param_offset   // Puntero a los parámetros pasados
  266.         program_index  // Contador de programa para este proceso
  267.         is_executed    // Indica si el proceso ya ha sido ejecutado
  268.         is_painted     // Indica si el proceso ya ha sido pintado
  269.         distance_1     // Distancia 1 del proceso (reservado modo 7)
  270.         distance_2     // Distancia 2 del proceso (idem)
  271.         frame_percent  // Porcentaje de frame recorrido
  272.         box_x0         // Caja ocupada por el sprite cada
  273.         box_y0         // vez que se pinta para realizar
  274.         box_x1         // volcado y restauración de fondo
  275.         box_y1         // parcial (dump_type==partial_dump)
  276. end
  277.  
  278. local father=0          // Identificador del padre
  279. local son=0             // Identificador del último hijo
  280. local smallbro=0        // Identificador del hermano menor
  281. local bigbro=0          // Identificador del hermano mayor
  282. local priority=0        // Prioridad de proceso (a mayor se procesa antes)
  283. local ctype=0           // Tipo de coordenada
  284. local x=0               // Coordenada X
  285. local y=0               // Coordenada Y
  286. local z=0               // Prioridad de impresión del gráfico
  287. local graph=0           // Código del gráfico para este proceso
  288. local flags=0           // +1 iversión horiz., +2 inversion vert., +4 Ghost
  289. local size=100          // Tamaño del proceso (en tanto por ciento)
  290. local angle=0           // Angulo del proceso
  291. local region=0          // Región de clipping para este proceso
  292. local file=0            // Fichero del que tomar los gráficos
  293. local xgraph=0          // Puntero a tabla: nºgraficos, graf_angulo_0, ...
  294. local height=1          // Altura de los procesos en el modo-7 (pix/4)
  295. local cnumber=0         // Nº de scroll o m7 en el que está (0 en todos, o bien: +1 en el 0, +2 en el 1, +4 en el 2, ...)
  296. local resolution=0      // Resolución de las coordenadas x,y (0,10,100,...)
  297.  
  298. //─── Funciones genéricas ─────────────────────────────────────────────────────
  299. // process <FUNCION> = código de dicha función, número de parámetros
  300.  
  301. process signal=0,2              // Envia una señal a un proceso (id,señal)
  302. process key=1,1                 // Devuelve el estado de una tecla (scan_code)
  303. process load_pal=2,1            // Carga una paleta de color ("fichero.pal")
  304. process load_fpg=3,1            // Carga un fichero con gráficos ("fichero.fpg")
  305. process start_scroll=4,6        // Crea una ventana de scroll (n,file,graf1,graf2,region,flags=0)
  306. process stop_scroll=5,1         // Elimina los planos de scroll que haya activos (n)
  307. process out_region=6,2          // Indica si un proceso está fuera de una region (id,región)
  308. process graphic_info=7,3        // Devuelve información de un gráfico (file,graph,info)
  309. process collision=8,1           // Devuelve el id del proceso "tipo" colisionante (tipo)
  310. process get_id=9,1              // Devuelve el primer id de un "tipo" determinado (tipo)
  311. process get_distx=10,2          // Devuelve distancia x de (angulo, distancia)
  312. process get_disty=11,2          // Devuelve distancia y de (angulo, distancia)
  313. process get_angle=12,1          // Devuelve el angulo hacia otro proceso (id)
  314. process get_dist=13,1           // Devuelve la distancia a otro proceso (id)
  315. process fade=14,4               // Fade de pantalla (%r,%g,%b,speed(1-lento .. 10-rápido))
  316. process load_fnt=15,1           // Carga un set de carácteres (256 colores, ancho var.) ("fichero.fnt")
  317. process write=16,5              // Escribe un texto (font,x,y,centro,texto)
  318. process write_int=17,5          // Escribe un numero (font,x,y,centro,&variable)
  319. process delete_text=18,1        // Borra un texto con su (id), o todos si (all_text)
  320. process move_text=19,3          // Indica nuevas coordenadas para un texto (t,x,y)
  321. process unload_fpg=20,1         // Descarga de memoria un fichero fpg (código_fpg)
  322. process rand=21,2               // Devuelve un número aleatorio (min,max) ambos incluidos
  323. process define_region=22,5      // Define una región de pantalla (n(1..max_region),x,y,an,al)
  324. process xput=23,8               // Pinta un gráfico en pantalla (file,graf,x,y)
  325. process put=24,4                // Pinta un gráfico en pantalla (file,graf,x,y)
  326. process put_screen=25,2         // Carga una pantalla (file,graf)
  327. process map_xput=26,8           // Pone un gráfico en otro (file,graf_destino,graf,x,y,angle,size,flags)
  328. process map_put=27,5            // Pone un gráfico en otro (file,graf_destino,graf,x,y)
  329. process put_pixel=28,3          // Pone un pixel en copia (x,y,color)
  330. process get_pixel=29,2          // Lee un pixel de copia (x,y)
  331. process map_put_pixel=30,5      // Pone un pixel en un gráfico (file,graf,x,y,color)
  332. process map_get_pixel=31,4      // Lee un pixel de un gráfico (file,graf,x,y)
  333. process get_point=32,5          // Lee un punto de control de un gráfico (file,graf,n,&x,&y)
  334. process clear_screen=33,0       // Borra el fondo de la pantalla
  335. process save=34,3               // Graba un bloque de datos a disco ("fichero",direccion,long)
  336. process load=35,2               // Carga un bloque de datos de disco ("fichero",direccion)
  337. process set_mode=36,1           // Pone un nuevo modo de vídeo, por defecto 320x200 (modo)
  338. process load_pcm=37,2           // Carga un sonido ("sonido.pcm",loop) devuelve id_sonido
  339. process unload_pcm=38,1         // Descarga un sonido (id_sonido)
  340. process sound=39,3              // Toca un pcm (id_sonido,volumen(0..100),frecuencia(±11000)) devuelve id_canal
  341. process stop_sound=40,1         // Para un sonido (id_canal)
  342. process change_sound=41,3       // Modifica un sonido (id_canal,volumen,frecuencia)
  343. process set_fps=42,2            // Define el nº de imagenes por segundo (nº 1..100, max_saltos 0..N)
  344. process start_fli=43,3          // Abre un fli (fichero,x,y) devuelve el nº de frames
  345. process frame_fli=44,0          // Muestra siguiente frame, devuelve 0 si terminó el fli
  346. process end_fli=45,0            // Finaliza el fli y descarga los buffers
  347. process reset_fli=46,0          // Reinicia el fli
  348. process system=47,1             // Invoca un comando DOS o a otro programa ("comando")
  349. process refresh_scroll=48,1     // Refresca un scroll (tras modificar el mapa) (n)
  350. process fget_dist=49,4          // Devuelve la distancia de A hasta B (Ax,Ay,Bx,By)
  351. process fget_angle=50,4         // Devuelve el angulo de A hasta B (Ax,Ay,Bx,By)
  352. process play_cd=51,2            // Toca una pista de audio (pista,0:solo pista 1:a partir de ella)
  353. process stop_cd=52,0            // Para el cd
  354. process is_playing_cd=53,0      // Dice si se está escuchando una canción (para implementar el loop)
  355. process start_mode7=54,6        // Crea una ventana de m7 (número 0..9,file,graf1,graf2,region,horizonte)
  356. process stop_mode7=55,1         // Elimina la ventana de m7 (número 0..9)
  357. process advance=56,1            // Avanza el proceso "n" en su angle (n)
  358. process abs=57,1                // Devuelve el valor absoluto de un entero (n)
  359. process fade_on=58,0            // Enciende la pantalla, sin espera ()
  360. process fade_off=59,0           // Apaga la pantalla, while fading end ()
  361. process rand_seed=60,1          // Establece la semilla del rand (semilla)
  362. process sqrt=61,1               // Devuelve la raiz de un número entero (n)
  363. process pow=62,2                // Devuelve n elevado a m (n,m)
  364. process map_block_copy=63,9     // Copia una region de un mapa a otro (file,graf_dest,x_dest,y_dest,graf,x,y,an,al)
  365. process move_scroll=64,1        // Mueve automática o manualmente un scroll (snum)
  366. process near_angle=65,3         // Acerca un ángulo a otro en un incremento (angle1,angle2,angle_inc)
  367. process let_me_alone=66,0       // Mata a todos los procesos menos el actual ()
  368. process exit=67,2               // Termina el juego, mata todos los procesos ("Texto",error_level)
  369. process roll_palette=68,3       // Rota una gama de colores (col_inicial,num_col,inc)
  370. process get_real_point=69,3     // Donde esta un punto de control del proceso actual (n,&x,&y)
  371. process get_joy_button=70,1     // Estado de un boton del joystick (boton 0..3)
  372. process get_joy_position=71,1   // Estado de un eje del joystick (eje 0..3)
  373. process convert_palette=72,3    // Transforma la paleta de un gráfico (file,graf,&new_palette)
  374. process load_map=73,1           // Carga un mapa (asignado a file 0, graph>=1000)
  375. process reset_sound=74,0        // Reinicializa el sistema de sonido (struct setup)
  376. process unload_map=75,1         // Descarga de memoria un mapa
  377. process unload_fnt=76,1         // Descarga de memoria un set de carácteres
  378. process set_volume=77,0         // Fija el volumen (segun setup)
  379.